#ifndef _QUEUE_H_
#define _QUEUE_H_

typedef char DataType;

class Queue
{
public:

	Queue( void );

	Queue( DataType value );

	void Enqueue( DataType value );

	void Dequeue( void );

	DataType GetTop( void );

	int GetSize( void );

	~Queue( void );

private:

	struct Node
	{
		DataType value;
		Node *pNext;
	};

	Node *m_pHead;
	Node *m_pTail;
	int m_size;

};

inline int Queue::GetSize( void )
{
	return m_size;
}

#endif /* _QUEUE_H_ */